﻿using System;
using System.Collections.Generic;
using System.Windows.Forms;
using Onshi.POS.Formularios.Recursos;
using Onshi.POS.Modelo.Entidades;
using Onshi.POS.Modelo.Enumeradores;
using Onshi.POS.Modelo.Objetos;
using Onshi.POS.Usuarios;
using Onshi.POS.Usuarios.Vistas;

namespace Onshi.POS.Formularios.Cliente
{
    public partial class PerfilesDetallesVer : FormularioBase, IPerfilesDetallesVer
    {
        #region Constructores

        public PerfilesDetallesVer(Int32 idPerfil)
        {
            InitializeComponent();
            this.idPerfil = idPerfil;
            presentador = new PerfilesDetallesVerPresentador(this);
        }

        #endregion

        #region Atributos

        private Int32 idPerfil;
        private PerfilesDetallesVerPresentador presentador;

        #endregion

        #region Propiedades

        public List<PerfilDetalle> Lista
        {
            set { bsPerfilesDetalles.DataSource = value; }
        }

        public String nombre
        {
            set { txtNombre.Text = value; }
        }

        public Int32 IdPerfil
        {
            get { return idPerfil; }
        }

        public EnumEstadoCheck TienePermisoFiltro
        {
            get
            {
                var valor = EnumEstadoCheck.TODOS;
                switch (chkTienePermisoFiltro.CheckState)
                {
                    case CheckState.Checked:
                        valor = EnumEstadoCheck.SI;
                        break;
                    case CheckState.Indeterminate:
                        valor = EnumEstadoCheck.TODOS;
                        break;
                    case CheckState.Unchecked:
                        valor = EnumEstadoCheck.NO;
                        break;
                }
                return valor;
            }
        }

        #endregion
        
        #region Eventos

        private void PerfilesDetallesVer_Load(Object sender, EventArgs e)
        {
            presentador.Inicializar();
        }

        private void chkTienePermisoFiltro_CheckStateChanged(object sender, EventArgs e)
        {
            try
            {
                presentador.Filtrar();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, DatosComunes.NombreAplicacion, MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }

        private void cboPermisoFiltro_SelectedIndexChanged(Object sender, EventArgs e)
        {
            try
            {
                presentador.Filtrar();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, DatosComunes.NombreAplicacion, MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }

        private void btnSalir_Click(object sender, EventArgs e)
        {
            Close();
        }

        #endregion
    }
}
